const  jobNodes = [
    {id:'j1', label:'Web前端\n开发工程师', group:'job', level:1},
    {id:'j2', label:'Web服务端\n开发工程师', group:'job', level:1},
    {id:'j3', label:'软件测试\n工程师', group:'job', level:1},
    {id:'j4', label:'大数据\n分析师', group:'job', level:1}
];

const  abilityNodes = [
    {id:1, label:'技术知识与推理', group:'ability',level:2},
    {id:2, label:'开放式思维与创新', group:'ability',level:2},
    {id:3, label:'个人职业能力', group:'ability', level:2},
    {id:4, label:'沟通表达与团队合作', group:'ability',level:2},
    {id:5, label:'态度与习惯', group:'ability', level:2},
    {id:6, label:'责任感', group:'ability',level:2},
    {id:7, label:'价值观', group:'ability',level:2},
    {id:8, label:'实践构思、设计、实现\n和运行为社会的贡献', group:'ability',level:2}
];

const jobToAbilityEdge = [
    {from:'j1', to: 1, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j1', to: 2, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j1', to: 3, color:'#000', width:2},
    {from:'j1', to: 4, color:'#000', width:2},
    {from:'j1', to: 5, color:{color:'#c0c4cc', opacity:0.5},  width:1},
    {from:'j1', to: 6, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j1', to: 7, color:{color:'#c0c4cc', opacity:0.5},  width:1},
    {from:'j1', to: 8, color:{color:'#c0c4cc', opacity:0.5},  width:1},

    {from:'j2', to: 1, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j2', to: 2, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j2', to: 3, color:'#000', width:2},
    {from:'j2', to: 4, color:'#000', width:2},
    {from:'j2', to: 5, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j2', to: 6, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j2', to: 7, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j2', to: 8, color:{color:'#c0c4cc', opacity:0.5}, width:1},

    {from:'j3', to: 1, color:'#000', width:2},
    {from:'j3', to: 2, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j3', to: 3, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j3', to: 4, color:'#000', width:2},
    {from:'j3', to: 5, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j3', to: 6, color:'#000', width:2},
    {from:'j3', to: 7, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j3', to: 8, color:{color:'#c0c4cc', opacity:0.5}, width:1},

    {from:'j4', to: 1, color:'#000', width:2},
    {from:'j4', to: 2, color:'#000', width:2},
    {from:'j4', to: 3, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j4', to: 4, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j4', to: 5, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j4', to: 6, color:{color:'#c0c4cc', opacity:0.5}, width:1},
    {from:'j4', to: 7, color:{color:'#c0c4cc', opacity:0.5}, width:2},
    {from:'j4', to: 8, color:{color:'#c0c4cc', opacity:0.5}, width:2},

]

const lessonNodes = [
    {id:101, label:'计算系统与计算思维', group:'lesson',level:3},
    {id:102, label:'程序设计基础（Java）', group:'lesson', level:4},
    {id:103, label:'专业导引与职涯规划（软件工程专业）', group:'lesson', level:6},
    {id:104, label:'面向对象程序设计（Java）', group:'lesson', level:6},
    {id:105, label:'数据库原理与技术', group:'lesson', level:6},
    {id:106, label:'计算机网络I', group:'lesson', level:4},
    {id:107, label:'数据结构（Java）', group:'lesson', level:7},
    {id:108, label:'前端开发技术', group:'lesson', level:4},
    {id:109, label:'面向对象系统分析与设计-双语', group:'lesson', level:8},
    {id:110, label:'Web开发技术（Java）', group:'lesson', level:6},
    {id:111, label:'计算机组成原理I', group:'lesson',level:4},
    {id:112, label:'软件质量保证与测试II', group:'lesson', level:3},
    {id:113, label:'操作系统', group:'lesson', level:4},
    {id:114, label:'软件体系结构与架构技术I', group:'lesson', level:9},
    {id:115, label:'软件工程', group:'lesson',level:9},
    {id:116, label:'软件项目管理', group:'lesson', level:3},
    {id:117, label:'工程经济与伦理', group:'lesson', level:4},

    {id:118, label:'自动化部署与运维', group:'ViceLesson', level:7},
    {id:119, label:'数据管理与应用', group:'ViceLesson', level:8},
    {id:120, label:'区块链应用开发', group:'ViceLesson',level:6},
    {id:121, label:'算法分析与设计I', group:'ViceLesson', level:8},
    {id:122, label:'Python语言程序设计', group:'ViceLesson', level:5},

    {id:123, label:'数据分析与可视化', group:'ViceLesson', level:6},
    {id:124, label:'高并发程序设计', group:'ViceLesson', level:7},
    {id:125, label:'分布式中间件技术', group:'ViceLesson',level:7},
    {id:126, label:'Web前端开发框架', group:'ViceLesson', level:7},
    {id:127, label:'游戏引擎技术', group:'ViceLesson', level:9},
    {id:128, label:'移动应用开发技术（Android）', group:'ViceLesson', level:9},
    {id:129, label:'物联网系统开发', group:'ViceLesson', level:7},
    {id:130, label:'分布式计算框架', group:'ViceLesson',level:9},
    {id:131, label:'自动化测试工具', group:'ViceLesson', level:7},
    {id:132, label:'微信小程序开发', group:'ViceLesson', level:9}
];

const abilityLessonEdgeWithInheritance = [
    { from: 1, to: 112 },

    { from: 2, to: 113 },

    { from: 3, to: 101 },
    { from: 3, to: 102 },
    { from: 3, to: 108 },
    { from: 3, to: 111 },
    { from: 3, to: 112 },
    { from: 3, to: 113 },

    { from: 5, to: 101 },

    { from: 5, to: 101 },

    { from: 6, to: 116 },

    { from: 7, to: 117 },
    
    { from: 8, to: 112 },
    { from: 8, to: 116 },
    { from: 8, to: 117 }
   
];

const lessonToLessonEdge = [
    { from: 102, to: 103, dashes: true },
    { from: 102, to: 104, dashes: true },
    { from: 102, to: 105, dashes: true },
    { from: 102, to: 120, dashes: true },
    { from: 101, to: 106, dashes: true },
    { from: 104, to: 109, dashes: true },
    { from: 104, to: 125, dashes: true },
    { from: 104, to: 128, dashes: true },
    { from: 104, to: 130, dashes: true },
    { from: 104, to: 107, dashes: true },
    { from: 106, to: 129, dashes: true },
    { from: 108, to: 110, dashes: true },
    { from: 108, to: 123, dashes: true },
    { from: 108, to: 126, dashes: true },
    { from: 110, to: 114, dashes: true },
    { from: 110, to: 127, dashes: true },
    { from: 110, to: 132, dashes: true },
    { from: 109, to: 115, dashes: true },
    { from: 107, to: 121, dashes: true },
    { from: 105, to: 119, dashes: true },
    { from: 112, to: 131, dashes: true },
    { from: 113, to: 118, dashes: true },
    { from: 113, to: 122, dashes: true },
    { from: 113, to: 124, dashes: true }
]

const options = {
    groups:{
        useDefaultGroups: true,
        job:{
            color:{
                border: 'rgb(243,200,9)',
                background: 'rgb(86,71,7)',
                highlight: {
                    border: 'rgb(219,192,70)',
                    background: 'rgb(219,192,70)'
                },
                hover: {
                    border: 'rgb(219,192,70)',
                    background: 'rgb(219,192,70)'
                }}, 
            borderWidth:1,
            font: {
                color: 'white',
                size: 14,
                align: 'center'
            },
            shape:'circle',
            size: 50
        },
        ability:{
            color:{
                border: 'rgb(243,200,9)',
                background: 'rgb(219,182,16)',
                highlight: {
                    border: 'rgb(219,192,70)',
                    background: 'rgb(219,192,70)'
                },
                hover: {
                    border: 'rgb(219,192,70)',
                    background: 'rgb(219,192,70)'
                }}, 
            borderWidth:1,
            font: {
                color: '#343434',
                size: 14,
                align: 'center'
            },
            shape:'ellipse',
            size: 50
        },
        lesson:{
            color:{
                border: '#2B7CE9',
                background: '#97C2FC',
                highlight: {
                    border: '#2B7CE9',
                    background: '#D2E5FF'
                },
                hover: {
                    border: '#2B7CE9',
                    background: '#D2E5FF'
                }}, 
            borderWidth:1,
            font: {
                color: '#343434',
                size: 14,
                align: 'center'
            },
            shape:'box',
            size: 50
        },
        ViceLesson:{
            color:{
                border: '#2B7CE9',
                background: 'green',
                highlight: {
                    border: '#2B7CE9',
                    background: '#D2E5FF'
                },
                hover: {
                    border: '#2B7CE9',
                    background: '#D2E5FF'
                }}, 
            borderWidth:1,
            font: {
                color: 'white',
                size: 14,
                align: 'center'
            },
            shape:'box',
            size: 50
        },
        KT:{
            color:{
                border: '#2B7CE9',
                background: '#97C2FC',
                highlight: {
                    border: '#2B7CE9',
                    background: '#D2E5FF'
                },
                hover: {
                    border: '#2B7CE9',
                    background: '#D2E5FF'
                }}, 
            borderWidth:3,
            font: {
                color: '#343434',
                size: 14,
                align: 'center'
            },
            shape:'box',
            size: 25
        }
    },
    edges: {
        arrows: 'to',
        color: {
            color: '#848484',
            highlight:'rgb(219,192,70)'
        }
    },
    layout: {
        randomSeed: undefined,
        improvedLayout:false,
        clusterThreshold: 150,
        hierarchical: {
          enabled:true,
          levelSeparation: 200,
          nodeSpacing: 300,
          treeSpacing: 300,
          blockShifting: true,
          edgeMinimization: true,
          parentCentralization: true,
          direction: 'LR',        // UD, DU, LR, RL
          sortMethod: 'hubsize',  // hubsize, directed
          shakeTowards: 'leaves'  // roots, leaves
        }
      }

};  

export {jobNodes, abilityNodes, lessonNodes, jobToAbilityEdge, abilityLessonEdgeWithInheritance, lessonToLessonEdge, options}